"""上传文件模型"""

from sqlalchemy import INT, String, DateTime
from sqlalchemy.orm import Mapped, mapped_column
from . import db


class UploadModel(db.Model):
    """
    文件表
    """

    __tablename__ = "files"
    # 主键id
    id: Mapped[int] = mapped_column(INT, primary_key=True, autoincrement=True)
    # 文件名
    file_name: Mapped[str] = mapped_column(
        String(36), unique=True, nullable=False
    )
    # 文件类型
    file_type: Mapped[str] = mapped_column(
        String(36), unique=True, nullable=False
    )
    # 文件大小
    file_type: Mapped[str] = mapped_column(
        String(36), unique=True, nullable=True
    )
    # 文件状态 0: 逻辑删除 1：使用中
    file_status: Mapped[INT] = mapped_column(
        String(1), unique=False, nullable=False
    )
    # 最后访问时间（清理使用）
    st_atime: Mapped[str] = mapped_column(
        DateTime, unique=False, nullable=False
    )

    def create_fileInfo(self):
        """创建文件信息"""
        db.session.add(self)
        db.session.commit()

    @classmethod
    def update_stAtime(cls, self):
        """更新文件最后访问时间"""
        return "xxx"
